﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category0
{
  public class MTS14 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagDefinition U0002;
    private static SwiftTagSubItemDefinition U0003;

    [Description("Reason For System Abort")]
    public Tag443 SystemAbortCode_443
    {
      get
      {
        return new Tag443((SwiftElement) this, 0, (SwiftDefinitionElement) MTS14.U0002);
      }
    }

    [Description("Reason For System Abort")]
    public Tag443 Tag443_SystemAbortCode
    {
      get
      {
        return this.SystemAbortCode_443;
      }
    }

    public MTS14()
      : base(true)
    {
    }

    public MTS14(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MTS14.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MTS14.MessageDefinition = new SwiftMessageDefinition("MTS14", "System Request to Remove LT");
      MTS14.U0002 = new SwiftTagDefinition("SystemAbortCode_443", "Reason For System Abort");
      MTS14.U0002.TagName = "{443:";
      MTS14.U0003 = new SwiftTagSubItemDefinition("SystemAbortCode", "Reason For System Abort");
      MTS14.U0002.Elements.Add((SwiftDefinitionElement) MTS14.U0003);
      MTS14.MessageDefinition.Elements.Add((SwiftDefinitionElement) MTS14.U0002);
    }
  }
}
